'''
在一个 n * m 的二维数组中，每一行都按照从左到右递增的顺序排序，
每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
具体方法分为行列全部查找，查找行头然后有选择的查找列，然后就是因为上下左右有变化的规律可以用标志位法

选左上角，往右走和往下走都增大，不能选
选右下角，往上走和往左走都减小，不能选
选左下角，往右走增大，往上走减小，可选
选右上角，往下走增大，往左走减小，可选

暴力法，直接查找

# -*- coding:utf-8 -*-
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        length = len(array)
        for i in range(length):
            if target in array[i]:
                return True
        return False
'''
# 长度需要-1 注意
class Solution:
    def findNumberIn2DArray(self, matrix, target):
        # if not matrix or not matrix[0]: return False
        i, j = len(matrix) - 1, 0
        print(i,j)
        while i >= 0 and j <=len(matrix[0])-1:
            if matrix[i][j] > target:
                # print(matrix[i][j])
                i -= 1
            elif matrix[i][j] < target:
                j += 1
            else:
                return True
        return False
# [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]]
print(Solution().findNumberIn2DArray([[1,1]],2))